/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	SubscriberMgrFactory.java
 * 模块说明：	
 * 修改历史：
 * Nov 1, 2007 - lxm - 创建。
 */
package com.hd123.rumba.mscb.subscriber;

import com.hd123.rumba.exception.BusinessException;

/**
 * 订阅者管理员工厂 | 实现类
 * 
 * @author lxm
 * 
 */
public class SubscriberMgrFactory {

  /**
   * 根据指定的实现类名返回订阅者管理员对象。
   * 
   * @param className
   *          指定ISubscriberMgr的实现类名。
   * @return 返回订阅者管理员对象。
   * @throws BusinessException
   */
  public static ISubscriberMgr buildMgr(String className) throws BusinessException {
    try {
      Object mgr = Class.forName(className).newInstance();
      if (!(mgr instanceof ISubscriberMgr))
        throw new BusinessException("指定的类" + className + "必须实现接口" + ISubscriberMgr.class.getName()
            + "。");
      return (ISubscriberMgr) mgr;
    } catch (InstantiationException e) {
      throw new BusinessException(e);
    } catch (IllegalAccessException e) {
      throw new BusinessException(e);
    } catch (ClassNotFoundException e) {
      throw new BusinessException(e);
    }
  }
}
